from matplotlib import pyplot as plt
import matplotlib
import pandas as pd
import os

# file_name='.\\newdata\\北京.csv'
# df = pd.read_csv(file_name, encoding='utf-8')
# x=df['年份']
# y=df['分数']
# plt.plot(x,y,marker='o')
# for a, b in zip(x, y):
#     plt.text(a, b, (a, b), ha='center', va='bottom', fontsize=8)
# figure_save_path='.\\graph'
# #plt.legend()
# plt.show()

matplotlib.rcParams['font.sans-serif'] = ['KaiTi']  # 中文显示为楷体

path = '.\\newdata'
files = os.listdir(path)  # files是一个由文件名组成的列表

figure_save_path = '.\\graph'
if not os.path.exists(figure_save_path):  # 如果当前路径下不存在这个文件夹，就创建一个
    os.makedirs(figure_save_path)

for name in files:  # 对于文件夹中的文件遍历
    file_name = f'.\\newdata\\{name}'
    df = pd.read_csv(file_name, encoding='utf-8')
    x = df['年份']
    y = df['分数']
    plt.plot(x, y, marker='o')
    plt.xlabel('年份')  # x坐标标识
    plt.ylabel('分数')
    if name.strip('.csv') in ['上海', '北京', '天津']:
        plt.title(f'{name.strip(".csv")}市录取分数线')  # 创建图名
    else:
        plt.title(f'{name.strip(".csv")}省录取分数线')
    for a, b in zip(x, y):
        plt.text(a, b, (a, b), ha='center', va='bottom', fontsize=8)  # 将图中的点的坐标表示出来
    plt.savefig(os.path.join(figure_save_path, name.strip('.csv')))  # 保存在文件夹中，用for循环来批量保存
    plt.clf()  # 画完一个图后，将plt重置，解决图片覆盖问题
print("over!")
